// 说说浏览器解析html文件的过程
{
}

// 什么是重绘重排，什么样的顺序，读dom元素的属性会造成重绘重排嘛
{
}

// 什么情况会出现浏览器分层
{
}

// 通过link进来的css会阻塞页面渲染嘛，js呢
// 怎样解决这种阻塞
{
}

// html语义化
{
}

// 说一下defer、async、module三者的区别
{
  // <script defer src="index2.js"></script>
  // <script async src="index1.js"></script>
  // <script type="module" src="index3.js"></script>
  /* 
  defer DOMContentLoaded事件之前执行，按照 defer 脚本的声明顺序来执行脚本（排队执行）。
  ps.根据不同浏览器不一定总是在DOMContentLoaded事件之前执行，所以最好只包含一个延迟脚本

  async 下载完便执行，因此会中断渲染，因此async是不能保证顺序的。
  module/nomodule 浏览器直接支持es6代码，也支持defer（默认）和async。
  
  defer 和 async 的使用场景如下：
  defer肯定是更加适合多个js互相依赖且有执行顺序的场景，大多数情况都适用，包括各大脚手架也是默认defer（页面底部），业务代码最合适。
  async则更加适合存放sdk或者其他毫不相关的第三方资源。
  */
}

// meta元素都有什么
{
}

// html解析成dom树的过程
{
}

// 行内元素有哪些？块级元素有哪些？ 空(void)元素有那些？
{
  /* 
  行内a b i span img input strong select label em button textarae 
  块级div ul li dl dt dd p h1-h6 blockquote
  空元素 br meta hr link input img
  */
}

// 简述一下src与href的区别
{
  /* 
  src用于img和link/script标签链接
  href用于超链接
  href 是指向网络资源所在位置，建立和当前元素（锚点）或当前文档（链接）之间的链接，用于超链接。
  src是指向外部资源的位置，指向的内容将会嵌入到文档中当前标签所在位置；在请求src资源时会将其指向的资源下载并应用到文档内，例如js脚本，img图片和frame等元素。

  当浏览器解析到该元素时，会暂停其他资源的下载和处理，直到将该资源加载、编译、执行完毕，图片和框架等元素也如此，类似于将所指向资源嵌入当前标签内。这也是为什么将js脚本放在底部而不是头部。
  */
}

// 讲术一下每个浏览器的内核分别是什么?
{
  /* 
  IE: trident内核
  Firefox：gecko内核
  Safari：webkit内核
  Opera：以前是presto内核，Opera现已改用Google Chrome的Blink内核
  Chrome：Blink(基于webkit，Google与Opera Software共同开发)
  */
}

// 预加载preload 和 prefetch 的共同点和不同点
{
  /* 
  <link rel="preload" href="style.css" as="style">
  这个指令可以在 link标签 中使用，如上文，表示预先请求当前页面需要的资源。当含有as表示优先级最高

  主要支持预加载的标签及文件类有
  auio音频，js文件，css样式，worker，video视频文件，image图片，font字体，fetch请求，embed元素，以及frame标签

  异步预加载页面加载中发现资源含有 preload 或者 prefetch 时，会从网络堆栈传输到 HTTP 缓存并进入渲染器的内存缓存。若资源含有缓存字段（例如，存在有效的 cache-control 和 max-age），它将存储在 HTTP 缓存中，可用于当前和未来触发它的请求；若是没有设置缓存则它会被缓存到内存缓存中并保持不变直到它被使用。

  preload：  直接请求
  prefetch： 空闲时间请求
  */
}
